1 <div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">
 
   4     class="header md-accent-bg"
 
   6     layout-align="space-between center"
 
   9     <div layout="row" layout-align="start center">
 
  10       <div class="logo" layout="row" layout-align="start center">
 
  11         <span class="logo-icon">
 
  12           <md-icon md-font-icon="icon-phone" class="s24"></md-icon>
 
  14         <span class="logo-text" translate="VOICE.VOICERECORDINGS"
 
  15           >VoiceRecordings</span
 
  24         class="search-input-wrapper"
 
  26         layout-align="start center"
 
  29           <md-icon md-font-icon="icon-magnify"></md-icon>
 
  31         <md-input-container md-no-float class="m-0">
 
  34             placeholder="Search for anyone"
 
  36             ng-model="vm.query.filter"
 
  37             ng-model-options="{ debounce: 1000 }"
 
  39             translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE"
 
  45         filters="vm.quickFilters"
 
  47         search="vm.getVoiceRecordings()"
 
  55     ng-show="vm.selectedVoiceRecordings.length > 0"
 
  56     class="selected-bar header animate-slide-down md-accent-bg"
 
  58     layout-align="start center"
 
  60     <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">
 
  61       <md-button layout="row" layout-align="start center">
 
  62         <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>
 
  63         <span translate="VOICE.BACK">Back</span>
 
  67     <div flex layout="row" layout-align="space-between center">
 
  69         <span class="selected-voiceRecordings-count">
 
  70           <span>{{vm.selectedVoiceRecordings.length}}</span>
 
  71           <span translate="VOICE.SELECTED">selected</span>
 
  74         <md-menu class="select-menu" ng-if="!vm.currentThread">
 
  76             class="md-icon-button"
 
  77             ng-click="$mdOpenMenu($event)"
 
  78             aria-label="multi select toggle"
 
  80             translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE"
 
  82             <md-icon md-font-icon="icon-menu-down"></md-icon>
 
  84           <md-menu-content width="3">
 
  87                 ng-click="vm.selectAllVoiceRecordings()"
 
  88                 translate="VOICE.SELECT_ALL"
 
  95                 ng-click="vm.deselectVoiceRecordings()"
 
  96                 translate="VOICE.SELECT_NONE"
 
 105       <div class="multi-select-actions">
 
 107           class="md-icon-button"
 
 108           ng-csv="vm.exportSelectedVoiceRecordings"
 
 110           filename="voiceRecordings.csv"
 
 112           <md-icon md-font-icon="icon-file-excel"></md-icon>
 
 115           class="md-icon-button"
 
 116           ng-if="vm.license.ai"
 
 117           ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)"
 
 118           aria-label="transcribesentiment selected"
 
 120           translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED"
 
 122           <md-icon md-font-icon="icon-text-to-speech"></md-icon
 
 124             >{{'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING' |
 
 125             translate}}</md-tooltip
 
 129           class="md-icon-button"
 
 130           ng-if="vm.license.ai"
 
 131           ng-click="vm.runtranscribeSelectedVoiceRecordings($event)"
 
 132           aria-label="transcribe selected"
 
 134           translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED"
 
 136           <md-icon md-font-icon="icon-format-size"></md-icon
 
 138             >{{'VOICE.RUNTRANSCRIBE_VOICERECORDING' | translate}}</md-tooltip
 
 142           class="md-icon-button"
 
 143           ng-if="vm.license.ai"
 
 144           ng-click="vm.runsentimentSelectedVoiceRecordings($event)"
 
 145           aria-label="transcribe selected"
 
 147           translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED"
 
 149           <md-icon md-font-icon="icon-heart-outline"></md-icon
 
 151             >{{'VOICE.RUNSENTIMENT_VOICERECORDING' | translate}}</md-tooltip
 
 155           class="md-icon-button"
 
 156           ng-if="vm.crudPermissions.canDelete"
 
 157           ng-click="vm.deleteSelectedVoiceRecordings($event)"
 
 158           aria-label="delete selected"
 
 160           translate-attr-label="VOICE.DELETE_SELECTED"
 
 162           <md-icon md-font-icon="icon-delete"></md-icon>
 
 167   <!-- / SELECTED BAR -->
 
 170   <div class="content" md-background-bg layout="row" layout-align="start start">
 
 172     <div class="main scrollable" ms-scroll>
 
 173       <!-- VOICERECORDING TABLE -->
 
 180             ng-model="vm.selectedVoiceRecordings"
 
 181             md-progress="vm.promise"
 
 185               md-order="vm.query.sort"
 
 186               md-on-reorder="vm.getVoiceRecordings"
 
 191                   ng-if="vm.table == 'users' || vm.table == 'agents'"
 
 194                 <th md-column md-order-by="type">
 
 195                   {{ 'VOICE.TYPE' | translate }}
 
 197                 <th md-column md-order-by="uniqueid">
 
 198                   {{ 'VOICE.UNIQUEID' | translate }}
 
 200                 <th md-column md-order-by="calleridnum">
 
 201                   {{ 'VOICE.CALLER' | translate }}
 
 203                 <th md-column md-order-by="exten">
 
 204                   {{ 'VOICE.CALLED' | translate }}
 
 206                 <th md-column md-order-by="connectedlinenum">
 
 207                   {{ 'VOICE.CONNECTED' | translate }}
 
 209                 <th md-column md-order-by="queue">
 
 210                   {{ 'VOICE.QUEUE' | translate }}
 
 212                 <th md-column md-order-by="membername">
 
 213                   {{ 'VOICE.AGENT' | translate }}
 
 215                 <th md-column md-order-by="rating">
 
 216                   {{ 'VOICE.RATING' | translate }}
 
 218                 <th md-column md-order-by="audio">
 
 219                   {{ 'VOICE.AUDIO' | translate }}
 
 221                 <th md-column md-order-by="createdAt">
 
 222                   {{ 'VOICE.DATE' | translate }}
 
 224                 <th md-column md-order-by="userDisposition">
 
 225                   {{ 'VOICE.DISPOSITION' | translate }}
 
 227                 <th md-column md-order-by="userSecondDisposition">
 
 228                   {{ 'VOICE.SECOND_LEVEL_DISPOSITION' | translate }}
 
 230                 <th md-column md-order-by="userThirdDisposition">
 
 231                   {{ 'VOICE.THIRD_LEVEL_DISPOSITION' | translate }}
 
 235                   md-order-by="transcribeStatus"
 
 236                   ng-if="vm.license.ai"
 
 238                   {{ 'VOICE.TRANSCRIBE' | translate }}
 
 240                 <th md-column md-order-by="sentiment" ng-if="vm.license.ai">
 
 241                   {{ 'VOICE.SENTIMENTANALYSIS' | translate }}
 
 243                 <th md-column width="10px"></th>
 
 247               <tr md-row ng-hide="vm.voiceRecordings.rows.length">
 
 248                 <td md-cell colspan="16">
 
 249                   <div layout="row" layout-align="center center">
 
 250                     <span translate="VOICE.NO_AVAILABLE_INFO"
 
 251                       >No Available Info</span
 
 258                 md-select="voiceRecording"
 
 260                 ng-repeat="voiceRecording in vm.voiceRecordings.rows"
 
 262                 <td md-cell ng-if="voiceRecording.userpic">
 
 265                     alt="{{voiceRecording.name}}"
 
 266                     ng-src="api/users/{{voiceRecording.id}}/avatar"
 
 271                   ng-if="!voiceRecording.userpic && (vm.table == 'users' || vm.table == 'agents')"
 
 275                     alt="{{voiceRecording.name}}"
 
 276                     ng-src="assets/images/avatars/profile.png"
 
 280                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 284                   {{voiceRecording.type}}
 
 287                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 291                   {{voiceRecording.uniqueid}}
 
 294                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 298                   {{voiceRecording.calleridnum}}
 
 301                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 305                   {{voiceRecording.exten}}
 
 308                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 310                   class="connectedlinenum"
 
 312                   {{voiceRecording.connectedlinenum}}
 
 315                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 319                   {{voiceRecording.queue}}
 
 322                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 326                   {{voiceRecording.membername}}
 
 329                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 334                     md-font-icon="icon-star"
 
 336                     ng-show="voiceRecording.rating"
 
 337                     ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"
 
 340                     ng-hide="voiceRecording.rating"
 
 341                     translate="VOICE.NO_RATING"
 
 345                 <td md-cell class="audio" ng-switch="voiceRecording.format">
 
 346                   <!-- audio recording directive -->
 
 348                     ng-switch-when=".wav"
 
 349                     id="voiceRecording.id"
 
 351                   <!-- / audio recording directive -->
 
 352                   <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">
 
 353                     <em>{{ 'VOICE.CANT_PLAY_GSM_AUDIO_FILES' | translate }}</em>
 
 357                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 361                   {{voiceRecording.createdAt | date:'medium' }}
 
 364                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 366                   class="userDisposition"
 
 368                   {{voiceRecording.userDisposition}}
 
 371                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 373                   class="userSecondDisposition"
 
 375                   {{voiceRecording.userSecondDisposition}}
 
 378                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 380                   class="userThirdDisposition"
 
 382                   {{voiceRecording.userThirdDisposition}}
 
 385                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 387                   class="transcribeStatus"
 
 388                   ng-if="vm.license.ai"
 
 390                   {{ 'VOICE.TRANSCRIBESTATUS_' + voiceRecording.transcribeStatus
 
 394                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)"
 
 397                   ng-if="vm.license.ai"
 
 399                   {{voiceRecording.sentiment}}
 
 402                 <td md-cell class="actions">
 
 405                       class="md-icon-button"
 
 408                       translate-attr-aria-label="VOICE.MORE"
 
 409                       ng-click="$mdOpenMenu($event)"
 
 411                       <md-icon md-font-icon="icon-dots-vertical"></md-icon>
 
 414                     <md-menu-content width="3">
 
 419                       <md-menu-item ng-if="vm.crudPermissions.canEdit">
 
 421                           ng-click="vm.editstate(voiceRecording, $event    )"
 
 422                           translate="VOICE.EDIT_VOICERECORDING"
 
 433                         ng-if="voiceRecording.transcribeStatus == 'NEW' && vm.license.ai"
 
 436                           ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event    )"
 
 437                           translate="VOICE.RUNTRANSCRIBE_VOICERECORDING"
 
 439                           RunTranscribe VoiceRecording
 
 448                         ng-if="voiceRecording.transcribeStatus == 'NEW' && vm.license.ai"
 
 451                           ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event    )"
 
 452                           translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"
 
 454                           RunTranscribeSentiment VoiceRecording
 
 463                         ng-if="voiceRecording.transcribeStatus == 'COMPLETED' && voiceRecording.sentiment == null && vm.license.ai"
 
 466                           ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event    )"
 
 467                           translate="VOICE.RUNSENTIMENT_VOICERECORDING"
 
 469                           RunSentiment VoiceRecording
 
 478                         ng-if="voiceRecording.transcribeStatus == 'COMPLETED' && vm.license.ai"
 
 481                           ng-click="vm.downloadtranscribefile2(voiceRecording, $event    )"
 
 482                           translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING"
 
 484                           DownloadTranscribe VoiceRecording
 
 494                           ng-click="vm.downloadfile2(voiceRecording, $event  , 'voice/recordings'   )"
 
 495                           translate="VOICE.DOWNLOAD_VOICERECORDING"
 
 497                           Download VoiceRecording
 
 505                       <md-menu-item ng-if="vm.crudPermissions.canDelete">
 
 507                           ng-click="vm.deleteconfirm(voiceRecording, $event    )"
 
 508                           translate="VOICE.DELETE_VOICERECORDING"
 
 510                           Delete VoiceRecording
 
 519         </md-table-container>
 
 522           md-label="{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}"
 
 523           md-limit="vm.query.limit"
 
 524           md-limit-options="[10, 15, 20, 50, 100, 250]"
 
 525           md-page="vm.query.page"
 
 526           md-total="{{vm.voiceRecordings.count}}"
 
 527           md-on-paginate="vm.getVoiceRecordings"
 
 529         ></md-table-pagination>
 
 531       <!-- / VOICERECORDING TABLE -->
 
 534       <!-- / NO RESULTS -->
 
 540   <!-- NO ADD BUTTON BUTTON -->